﻿using System;
using Simp.CodeModel.CoreFunctions.Sequences;

namespace Simp.CodeModel.CoreFunctions
{
	/// <summary>Exposes a package or a set of functions defined in this assembly.</summary>
	public static class CorePackage
	{
		private static readonly IFunction[] _functionList = new IFunction[]
		{
			new NegativeFunction(),
			new AdditionFunction(),
			new DivisionFunction(),
			new MultiplicationFunction(),
			new SubstractionFunction(),
			new FloatingFunction(),
			new PowerFunction(),
			new SqrtFunction(),
			new TrueFunction(),
			new FalseFunction(),
			new ListFunction(),
			new LenFunction(),
			new EvalFunction(),
			new CumulateFunction()
		};

		/// <summary>Returns the set of functions defined in this assembly.</summary>
		public static IFunction[] Package
		{
			get { return (IFunction[])_functionList.Clone(); }
		}
	}
}